package cn.gwm.flink.streaming.dwm.charge.model;

import cn.gwm.flink.streaming.constant.VehiclePowerType;
import cn.gwm.flink.streaming.constant.VehicleType;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;

/**
 * @Author: liangguang
 * @Date: 2022/5/19
 * @Description: 充电相关 常量池
 */
@Data
@Accessors(chain = true)
public class ChargeConstant implements Serializable {
    /**
     * 汇总
     */
    public static final String summar = "summar";
    /**
     * 二级汇总
     */
    public static final String bandSummar = "bandSummar";
    /**
     * 明细
     */
    public static final String detail = "detail";
    /**
     * 优惠信息
     */
    public static final String favourable = "favourable";

    public String powerType;

    public String vehicletype = VehicleType.VEHICLE_TYPE;

    public String requestTime = "request_time";

    /**
     * 慢充
     */
    public String obcConnectStsEv;


    /**
     * 快充
     */
    public String bmsDcchrgConnect;


    /**
     * 目标soc
     */
    public String tboxBattSoc;
    /**
     * 动力电池SOC
     */
    public String bmsSoc;

    /**
     * 动力电池能量状态
     */
    public String bmsSoe;
    /**
     * SOH 车端
     */
    public String bmsSoh;
    /**
     * SOH 云端
     */
    public String bmsSohCor;
    /**
     * 慢充 输出电压
     */
    public String obcChrgrOutputVolt;
    /**
     * 快充 输出电压
     */
    public String evccEvseOutputV;
    /**
     * 慢充 输出电流
     */
    public String obcChrgrOutputCurr;
    /**
     * 快充 输出电流
     */
    public String evccEvseOutputC;
    /**
     * 快充  输出功率
     */
    public String evccEvseOutputP;
    /**
     * 当前电流
     */
    public String bmsBattCurr;
    /**
     * 当前电压
     */
    public String bmsBattVolt;
    /**
     * 电池最高温度
     */
    public String bmsRmcModuleTempMax;
    /**
     * 电池最低温度
     */
    public String bmsRmcModuleTempMin;
    /**
     * 电池平均温度
     */
    public String BmsModuleTempAverage;
    /**
     * 环境温度
     */
    public String AcAmbTemp;
    /**
     * 故障码
     */
    public String faultCode;
    /**
     * 车端预测时长
     */
    public String BmsChrgTime;

    /**
     * 内部SOC
     */
    public String BmsInnerSOC;
    /**
     * 版本号
     */
    public String BmsSWVersion;

    public String customType = "custom_type";
    /**
     * 逻辑充电次数
     */
    public String chrgLogicNum = "chrgLogicNum";
    /**
     * 阶段开始时间
     */
    public String startChargeTime = "startChargeTime";


    /**
     * 优惠电量（千瓦时）
     */
    public String discountPower;
    /**
     * 非优惠电量（千瓦时）
     */
    public String expensivePower;
    /**
     * 优惠充电时间（分钟）
     */
    public String discountTime;
    /**
     * 非优惠充电时间
     */
    public String expensiveTime;

    // --------------明细-----------
    /**
     * 品牌
     */
    public String brand = "brand";
    /**
     * 记录来源
     */
    public String source = "source";
    /**
     * SOH（极柱腐蚀）（电压max↓）
     */
    public String sohCor;
    /**
     * 加热信号
     */
    public String bmsHeatReq;
    /**
     * 制冷信号
     */
    public String bmsCoolReq;
    /**
     * 动力电池内部SOC最大值
     */
    public String bmsInnerSocMax;
    /**
     * 动力电池内部SOC最小值
     */
    public String bmsInnerSocMin;
    /**
     * 单体电压最大值
     */
    public String bmsCellVoltMax;
    /**
     * 单体电压最小值
     */
    public String bmsCellVoltMin;
    /**
     * 空调开关
     */
    public String AcOpenSts;

// -------------   额外使用字段 【用于业务判断】
    /**
     * 电机CC状态
     */
    public String obcCclineConnectSts;
    /**
     * 充电状态
     */
    public String bmsChrgSts;

    /**
     * 用于判断 人工预约 充电 ，含义未知
     */
    public String plugChrgnMode;
    /**
     * 用于判断 人工预约 充电 ，含义未知
     */
    public String intellgntChrgnModResp;
    /**
     * 随车抢优先级1 的判断条件
     */
    public String obcChrgGunSts;
    /**
     * 快充的功率  用于判断是否为超级快充
     */
    public String evccEvseOutput;

    public String vcuChrgnSts;


    public String cellBatteryType = "cell_battery_type";
    public String batterCapcity = "batter_capcity";
    public String packCapacity = "pack_capacity";
    public String modelCode = "model_code";
    public String latitude = "latitude";
    public String longitude = "longitude";


}
